import { Cell } from '../cors/cell';
export type TPositionInfo = {
    x: number;
    y: number;
    w: number;
    h: number;
}
export interface ICellRender {
    cell: Cell;
    init(value: any):void;
    render(rect: TRect, clipRect: TRect, ...args: any[]):void;
}

export interface ICellRenderInjectParentCell {
    injectCell(cell: Cell): void;
}
export interface ICellRenderDestroy {
    destroy():void;
}

export interface IUpdateRowIndex{
    updateRowIndex(newRow: number):void;
}

export interface IUpdateColIndex {
    updateColIndex(newCol: number): void;
}

export interface IMouseOverEvent {

}

export interface IMouseOutEvent {

}

export interface IMouseClickEvent {

}
export interface ICellEditor {
    initEditor(cell: Cell, editorContainer: HTMLElement, finishCallBack: () => void, event: {preventDefault: boolean}):void;
    finish():void;
}
export interface ICellEditorChangePosition {
    changePosition(info: TPositionInfo): void;
}
export interface ICellEditorDestroy {
    destroy():void;
}

export interface ICellGroup {
    type: string;
    render: {new(...args: any[]):ICellRender},
    editor: {new(...args: any[]):ICellEditor}
}